<?php
namespace Home\Model;
use GraphAware\Neo4j\Client\ClientBuilder;

/**
 * 实现postgresql数据操作模型类
 * 注意：1、为区别于自定义model，数据库连接类方法命名采用公共函数的命名规范
 *       2、本类只包含数据库连接以及执行cypher语句的方法，其他方法根据业务需要自行添加
 * @author yukari
 * 2018-08-28
 */
class Neo4jModel{

	//数据库连接
	protected  $db_con = null;

	/**
	 * 构造函数，负责数据库的连接
	 * @author yukari
	 * 2018-08-28
	 */
	public function __construct(){

        require_once './ThinkPHP/Library/Vendor/neo4j/autoload.php';
        
        $host = C("NEO_HOST");
        $port = C("NEO_PORT");
        $user = C("NEO_USER");
        $pwd = C("NEO_PWD");

        $client = ClientBuilder::create()
            ->addConnection('bolt', 'bolt://'.$user.':'.$pwd.'@'.$host.':'.$port) 
            ->build();

        $this->db_con = $client;
	} 

	/**
     * 执行cypher语句
     * @param $cypher 要执行的语句;
     * @return 执行语句的结果
     * @author yukari
     * 2018-08-28
     */
	public function run($cypher){

        $res = $this->db_con->run($cypher);
        return $res;
    }


}